package top.pin90.config;

import top.pin90.DayRange;
import top.pin90.HolidayConfig;

import java.util.ArrayList;
import java.util.List;

/**
 * 2025年假期配置（数据来自国务院办公厅<a href="https://www.gov.cn/zhengce/content/202411/content_6986382.htm">关于2025年部分节假日安排的通知</a>）
 * 一、元旦：1月1日（周三）放假1天，不调休。
 *
 * 二、春节：1月28日（农历除夕、周二）至2月4日（农历正月初七、周二）放假调休，共8天。1月26日（周日）、2月8日（周六）上班。
 *
 * 三、清明节：4月4日（周五）至6日（周日）放假，共3天。
 *
 * 四、劳动节：5月1日（周四）至5日（周一）放假调休，共5天。4月27日（周日）上班。
 *
 * 五、端午节：5月31日（周六）至6月2日（周一）放假，共3天。
 *
 * 六、国庆节、中秋节：10月1日（周三）至8日（周三）放假调休，共8天。9月28日（周日）、10月11日（周六）上班。
 */
public class HolidayConfig2025 implements HolidayConfig {
    @Override
    public int getYear() {
        return 2025;
    }

    @Override
    public int getRestMode() {
        return 2;
    }

    @Override
    public int getVersion() {
        return 3;
    }

    @Override
    public String getDesc() {
        return "2025年日历数据";
    }

    public List<DayRange> getBusyDay() {
        List<DayRange> busyDay = new ArrayList<>();
        busyDay.add(DayRange.of("0126", "0126", "春节调休"));
        busyDay.add(DayRange.of("0208", "0208", "春节调休"));
        busyDay.add(DayRange.of("0427", "0427", "劳动节调休"));
        busyDay.add(DayRange.of("0928", "0928", "国庆节调休"));
        busyDay.add(DayRange.of("1011", "1011", "国庆节调休"));

        return busyDay;
    }

    public List<DayRange> getRestDay() {
        List<DayRange> restDay = new ArrayList<>();
        restDay.add(DayRange.of("0101", "0101", "元旦"));
        restDay.add(DayRange.of("0128", "0204", "春节"));
        restDay.add(DayRange.of("0404", "0406", "清明节"));
        restDay.add(DayRange.of("0501", "0505", "劳动节"));
        restDay.add(DayRange.of("0531", "0602", "端午节"));
        restDay.add(DayRange.of("1001", "1008", "国庆节、中秋节"));
        return restDay;
    }
}
